RK3566上运行yolov5模型进行图像识别

您所在的位置:网站首页 rk3566 npu 语音识别 RK3566上运行yolov5模型进行图像识别

RK3566上运行yolov5模型进行图像识别

2024-07-14 15:14| 来源: 网络整理| 查看: 265

一、简介

本文记录了依靠RK官网的文档,在rk3566芯片的npu上运行yolov5 模型,输入一张jpeg图像,并输出图像识别结果

在rk3566 板端运行如下app:

# rknn_yolov5_demo是官网的yolov5 demo,yolov5s-640-640.rknn是yolov5的模型文件,bus.jpg是输入yolov5的图像 ./rknn_yolov5_demo model/RK356X/yolov5s-640-640.rknn model/bus.jpg

输入图像: 在这里插入图片描述 输出识别结果: 在这里插入图片描述

下面简单记录实现过程

二、实现步骤 2.1、环境准备

参考《Rockchip_Quick_Start_RKNN_SDK_V1.3.0_CN.pdf》进行环境搭建 需要注意的是,rknn_yolov5_demo 使用的glibc 库是2.29,所以在build rootfs的时候最好选上gcc 2.29 需要在buildroot的config文件中加入如下配置:

CONFIG_BR2_PACKAGE_GLIBC_2_29=y

然后重新编译rootfs,烧录到板子。

本次实验需要如下文件:

yolov5s-640-640.rknn:部署到npu的模型rknn_yolov5_demo:app,部署模型,处理输入输出

以下说明如何得到这些文件:

yolov5s-640-640.rknn

我们在服务器训练得到的是yolov5.onnx 的模型文件,需要将该模型转换成rk npu 支持的rknn模型 通过 rknn-toolkit2 将yolov5.onnx 模型文件转换成 rknn模型 在这里插入图片描述

rknn_yolov5_demo

在rknpu2 example目录下编译,需要设置下编译器路径即可

得到输出文件都是在install目录

2.3、在板子运行

板子通过nfs 挂载到服务器,并进入install 目录,需要设置链接路径:

export LD_LIBRARY_PATH=./lib

然后执行如下命令运行app:

# rknn_yolov5_demo是官网的yolov5 demo,yolov5s-640-640.rknn是yolov5的模型文件,bus.jpg是输入yolov5的图像 ./rknn_yolov5_demo model/RK356X/yolov5s-640-640.rknn model/bus.jpg

其中console输出如下

post process config: box_conf_threshold = 0.25, nms_threshold = 0.45 Read model/bus.jpg ... img width = 640, img height = 640 Loading mode... sdk version: 1.4.0 (a10f100eb@2022-09-09T09:07:14) driver version: 0.8.2 model input num: 1, output num: 3 index=0, name=images, n_dims=4, dims=[1, 640, 640, 3], n_elems=1228800, size=1228800, fmt=NHWC, type=INT8, qnt_type=AFFINE, zp=-128, scale=0.003922 index=0, name=334, n_dims=4, dims=[1, 255, 80, 80], n_elems=1632000, size=1632000, fmt=NCHW, type=INT8, qnt_type=AFFINE, zp=77, scale=0.080445 index=1, name=353, n_dims=4, dims=[1, 255, 40, 40], n_elems=408000, size=408000, fmt=NCHW, type=INT8, qnt_type=AFFINE, zp=56, scale=0.080794 index=2, name=372, n_dims=4, dims=[1, 255, 20, 20], n_elems=102000, size=102000, fmt=NCHW, type=INT8, qnt_type=AFFINE, zp=69, scale=0.081305 model is NHWC input fmt model input height=640, width=640, channel=3 once run use 95.224000 ms loadLabelName ./model/coco_80_labels_list.txt person @ (114 235 212 527) 0.819099 person @ (210 242 284 509) 0.814970 person @ (479 235 561 520) 0.790311 bus @ (99 141 557 445) 0.693320 person @ (78 338 122 520) 0.404960 loop count = 10 , average run 91.414500 ms

假如出现gcc 版本不对,请确保你的rootfs 有正确编译

在windows 搭建tftp server(因为nfs server 一直出现各种问题,所以我只能使用tftp了,无奈)tftpd64 下载地址:https://bitbucket.org/phjounin/tftpd64/wiki/Download%20Tftpd64 运行tftp64,设置共享路径 linux 端自带一个tftp 软件,可以使用它从windows下载所需的文件,这里是一份tftp 下载的脚本 该脚本将windows 的文件下载到mnt/rknn 目录下

tftp -g -l /mnt/rknn/model/coco_80_labels_list.txt -r model/coco_80_labels_list.txt 192.168.8.101 tftp -g -l /mnt/rknn/lib/librga.so -r lib/librga.so 192.168.8.101 tftp -g -l /mnt/rknn/lib/librknnrt.so -r lib/librknnrt.so 192.168.8.101 tftp -g -l /mnt/rknn/model/RK356X/yolov5s-640-640.rknn -r model/RK356X/yolov5s-640-640.rknn 192.168.8.101 tftp -g -l /mnt/rknn/modelbus.jpg -r model/bus.jpg 192.168.8.101 tftp -g -l /mnt/rknn/rknn_yolov5_demo -r rknn_yolov5_demo 192.168.8.101


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3